﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TMV.DTO;
using TMV.DTO.Authorization;
using TMV.DTO.Tr;

namespace TMV.Application.Tr.Services
{
    public interface ITrServiceDM
    {
        /// <summary>
        /// 获取物流订单
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        ResultPageEntity<TransportationRecordsDTO> GetTransportationRecordsList(Request_TransportationRecords dto);

        /// <summary>
        /// 获取最新一条物流订单
        /// </summary>
        /// <returns></returns>
        TransportationRecordsDTO GetTransportationRecords(string PlateNumber);

        /// <summary>
        /// 添加物流订单-存重
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        ResultEntity<bool> AddTransportationRecords(TransportationRecordsModel model);

        /// <summary>
        /// 修改物流订单-存盘
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        ResultEntity<bool> UpTransportationRecords(TransportationRecordsModel model);

        /// <summary>
        /// 删除物流订单
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        ResultEntity<bool> DeTransportationRecords(Guid id);

        /// <summary>
        /// 清空称重记录
        /// </summary>
        /// <param name="type">1.重衡，2.轻衡</param>
        /// <param name="Id">物流单id</param>
        /// <returns></returns>
        ResultEntity<bool> Qksc(int type, Guid Id);
         

		/// <summary>
		/// Socket解析成物流订单-进场绑卡
		/// </summary>
		/// <param name="dto"></param>
		/// <returns></returns>
		ResultInfo GetDataInfo1(AuthorizationDTO dto);

        /// <summary>
        /// Socket解析成物流订单-毛重
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        ResultInfo GetDataInfo2(AuthorizationDTO dto);

        /// <summary>
        /// Socket解析成物流订单-出厂
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        ResultInfo GetDataInfo3(AuthorizationDTO dto);

        /// <summary>
		/// 获取上传数据信息
		/// </summary>
		/// <returns></returns>
        UploadDTO GetScData(AuthorizationDTO dto);

		/// <summary>
		/// 上传完成后，处理上传数据状态
		/// </summary>
		/// <returns></returns>
		void UpScData(string Code);


        /// <summary>
        /// 获取打印数据
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        PrintDto GetPrint(AuthorizationDTO dto);

        /// <summary>
        /// 记录流程数据
        /// </summary>
        /// <param name="dto"></param>
        void AddScalageRecords(AuthorizationDTO dto);

	}
}
